package com.ddm.service.webService;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.api.R;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ddm.entity.webEntity.PaymentRecord;
import com.ddm.result.Result;
import org.springframework.transaction.annotation.Transactional;

import java.time.LocalDate;

public interface PaymentService extends IService<PaymentRecord> {
    @Transactional(rollbackFor = Exception.class)
    PaymentRecord updatePaymentStatus(String orderNo, String newStatus);

    //根据订单号查询订单
   PaymentRecord getPaymentByOrderNo(String orderNo);
    //根据用户Id查询对应的订单记录
    IPage<PaymentRecord> queryPaymentPage(int pageNum, int pageSize, String userId);
    //创建订单（返回创建成功的订单实体，失败返回null）
    PaymentRecord createPaymentRecord(Integer userId, Integer planId, String orderStatus);
    /**
     * 订单列表查询（多条件+分页）
     * @param userId      用户ID（可选）
     * @param orderStatus 订单状态（可选）
     * @param startDate   开始日期（可选）
     * @param endDate     结束日期（可选）
     * @param page        页码
     * @param pageSize    每页条数
     * @return 分页订单列表
     */
    IPage<PaymentRecord> getPaymentList(String userId, String orderStatus, LocalDate startDate, LocalDate endDate, Integer page, Integer pageSize);

    Result<String> deletePaymentRecord(String orderNo);
}